/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.upc.sigu.modelo.daoImpl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.stereotype.Repository;
import pe.edu.upc.sigu.entities.Alumnos;
import pe.edu.upc.sigu.entities.NotasAlumnoCurso;
import pe.edu.upc.sigu.entities.Periodos;
import pe.edu.upc.sigu.modelo.dao.NotasAlumnoCursoDao;

/**
 *
 * @author Usuario2
 */
@Repository(value = "notasAlumnoCursoDao")
public class NotasAlumnoCursoDaoImpl implements NotasAlumnoCursoDao {

    private EntityManager entityManager = null;

    @PersistenceContext
    public void setEntityManager(EntityManager entityManager) {
        this.entityManager = entityManager;
    }

    @Override
    public List<NotasAlumnoCurso> getNotasCurosList(Periodos periodo, Alumnos alumno) {
        String sql = "SELECT  a FROM NotasAlumnoCurso a JOIN a.alumnoCursoSeccion b JOIN b.alumnosPeriodos c  "
                + "WHERE c.alumnos=:alumno AND c.periodos = :periodo";
        Query query = getEntityManager().createQuery(sql);
        query.setParameter("alumno", alumno);
        query.setParameter("periodo", periodo);
        return query.getResultList();
    }

    /**
     * @return the entityManager
     */
    public EntityManager getEntityManager() {
        return entityManager;
    }

    @Override
    public int actualizarNota(NotasAlumnoCurso nota) {
        try {
            entityManager.persist(nota);
        } catch (Exception e) {
            return 0;
        }
        return 1;
    }
}
